﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ShivamEMR.Model.Domain.CRMDomain;
using ShivamEMR.Model.Domain.PersonDomain;
using ShivamEMR.Model.Domain.AccountsDomain;
using System.ComponentModel.DataAnnotations;

namespace ShivamEMR.Model.Domain.InventoryDomain
{
   public class Invoice
    {
       #region Properties		
        public Guid ID { get; set; }
        public string Code { get; set; }
        public DateTime DateAndTime { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string Notes { get; set; }
        public string Barcode { get; set; }
        public decimal TotalAmount { get; set; } 
	#endregion

        #region ForeignKeyProperties
        public Guid PersonID { get; set; }
        public Guid VenueID { get; set; }
        public Guid PaymentID { get; set; }
        public int InvoiceGroupID { get; set; }
        public int InvoiceTypeID { get; set; }
        public int InvoiceStatusID { get; set; } 
        #endregion

        #region NavigationalProperties
       [ForeignKey("PersonID")]
        public virtual Person Person { get; set; }
       [ForeignKey("VenueID")]
        public virtual Venue Venue { get; set; }
       [ForeignKey("PaymentID")]
        public virtual Payment Payment{ get; set; }
       [ForeignKey("InvoiceGroupID")]
        public virtual InvoiceGroup Group { get; set; }
       [ForeignKey("InvoiceTypeID")]
        public virtual InvoiceType Type { get; set; }
       [ForeignKey("InvoiceStatusID")]
        public virtual InvoiceStatus Status { get; set; }

        public virtual ICollection<InvoiceItem> Items { get; set; }
        #endregion


    }
}
